//
//  main.m
//  06-HomeWork
//
//  Created by dllo on 16/7/11.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    /* 计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前"
     将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象。
     将1468232420转成日期类型
     研究NSDateComponents
     */
    
    NSDate *pastDate = [NSDate dateWithTimeIntervalSinceNow:-370];
    NSLog(@"%@", pastDate);
    // 当前时间
    NSDate *nowDate = [NSDate date];
    // 固定时间与当前时间的差值
    NSTimeInterval interval4 = [nowDate timeIntervalSinceDate:pastDate];
    NSLog(@"时间差为 %.2f 秒", interval4);
    
    if (interval4 <= 60) {
        
        NSLog(@"刚刚");
        
    }else if(interval4 <= 3600){
        
        NSLog(@"%.f分钟之前", interval4 / 60);
        
    }else if(interval4 <= 24 * 3600){
        
        NSLog(@"%.f小时之前", interval4 / 3600);
        
    }else if(interval4 > 24 * 3600){
        
        NSLog(@"%@", pastDate);
    }
    
    // 秒转日期
    // 1468232420
    NSString *timeStamp2 = @"1468232420";
    long long int date1 = (long long int)[timeStamp2 intValue];
    NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:date1];
    NSLog(@"时间戳转日期 %@  = %@", timeStamp2, date2);
    // 日期转秒
    NSTimeInterval timeStamp1= [date2 timeIntervalSince1970];
    NSLog(@"日期转换为时间戳 %@ = %f", date2, timeStamp1);
    
    // 将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象
    NSDateFormatter *formatter3 = [[NSDateFormatter alloc] init];
    [formatter3 setDateFormat:@"yyyy年MM月dd号 HH时mm分ss秒"];
    // 准备时间字符串
    NSString *dateString3 = @"2016年04月01号 01时20分18秒";
    // 使用时间格式对象借助时间字符串格式化时间对象
    // 2016年04月01日 01点20分18秒
    NSDate *date5 = [formatter3 dateFromString:dateString3];
    // 转过来的时间会被回归到零时区的时间
    NSLog(@"%@", date5);
    // 如果想得到北京时间需要手动加上8小时
    NSDate *date6 = [date5 dateByAddingTimeInterval:8*60*60];
    NSLog(@"%@", date6);
    
    // NSDateComponents
    /* 获取一个NSDateComponents对象的信息
     – era 时代
     – year 年
     – month 月
     – day 天
     – hour 时
     – minute 分
     – second 秒
     – week
     – weekday
     – weekdayOrdinal
     – quarter 季度
     */
    /* 
     设置一个NSDateComponents对象的信息
     – setEra:
     – setYear:
     – setMonth:
     – setDay:
     – setHour:
     – setMinute:
     – setSecond:
     – setWeek:
     – setWeekday:
     – setWeekdayOrdinal:
     – setQuarter:
     */
   // 获得2004年5月6日是星期几
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:6];
    [comps setMonth:5];
    [comps setYear:2004];
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:
                             NSCalendarIdentifierGregorian];
    NSDate *date = [gregorian dateFromComponents:comps];
    NSDateComponents *weekdayComponents = [gregorian components:NSCalendarUnitWeekday  fromDate:date];
    NSInteger weekday = [weekdayComponents weekday];
    NSLog(@"星期%ld",weekday);
    
    return 0;
}
